package org.fatewa.engine.design.base;

/**
 * 由于缺少了 1.x 中的 AncestorDomain 提供的 ID 字段
 * Rayquaza 的 ID 识别需要用户提供 PrimaryKeyProvider 的实现
 *
 * @author 4everlynn
 */
public interface PrimaryKeyProvider<T> {
    /**
     * 指定 ID 的名称
     *
     * @return ID 的名称
     */
    String key();

    /**
     * 主键的类型
     *
     * @return 主键的类型
     */
    Class<T> type();
}
